import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Tercer mundo del juego
 * 
 * @author Luis Guajardo Olvera
 * @author Daniel Romero Martí
 */
public class Meteoro extends Inicio
{

    private StarFox nave;
    private int creador;
    private boolean iniciador;
    private long startTime;
    private long currentTime;
    private int durationMillis;
    private int durationSecs;

    /**
     * Constructor for objects of class Space.
     * 
     */
    public Meteoro(int score)
    {    
        // Create a new world with 600x400 cells with a cell size of 1x1 pixels.
        super(); 
        nave = new StarFox();
        setPaintOrder(StarFox.class);
        creador=0;
        iniciador=false;
        prepare();
        nave.aumentaPuntos(score);
    }
    
    /**
     * Método de actua
     */
    public void act()
    { 
        if(!iniciador)
        {
            startTime = System.currentTimeMillis();
            iniciador= true;
            super.tocaCancion();
        }
        currentTime = System.currentTimeMillis();
        durationMillis = (int)(currentTime - startTime);
        durationSecs= durationMillis/1000;
        this.cargaEnemigos(durationSecs);
    }
    
    /**
     * Método que carga los enemigos predeterminados
     */
    public void cargaEnemigos(int tiempo)
    {
        if(tiempo==2 && creador==0)
        {
            Porteria porteria = new Porteria();
            addObject(porteria,298,189);
            creador++;
        }
        if(tiempo==3 && creador==1)
        {
            Torreta torr1 = new Torreta();
            addObject(torr1,454,177);
            creador++;
        }
        if(tiempo==5 && creador==2)
        {
            Torreta torr2 = new Torreta();
            addObject(torr2,100,177);
            creador++;
        }
        if(tiempo==7 && creador==3)
        {
            Edificio edif1= new Edificio();
            addObject(edif1,221,126);
            creador++;
        }
        if(tiempo==9 && creador==4)
        {
            Torreta torr3 = new Torreta();
            Torreta torr4 = new Torreta();
            addObject(torr3,454,177);
            addObject(torr4,100,177);
            creador++;
        }
        if(tiempo==13 && creador==5)
        {
            Caza caza1 = new Caza();
            addObject(caza1,100,59);
            Aro aro1 = new Aro();
            addObject(aro1,321,100);
            creador++;
        }
        if(tiempo==16 && creador==6)
        {
            Porteria port = new Porteria();
            addObject(port,210,177);
            creador++;
        }
        if(tiempo==17 && creador==7)
        {
            Gigante gigante = new Gigante();
            addObject(gigante,590,270);
            creador++;
        }
        if(tiempo==20 && creador==8)
        {
            Destruido des = new Destruido();
            addObject(des,400,90);
             Destruido des1 = new Destruido();
            addObject(des1,150,90);
            creador++;
        }
        if(tiempo==22 && creador==9)
        {
            Destruido des = new Destruido();
            addObject(des,400,90);
             Destruido des1 = new Destruido();
            addObject(des1,150,90);
            creador++;
        }
        if(tiempo==26 && creador==10)
        {
            Gigante gig = new Gigante();
            addObject(gig,590,270);
            Torreta tor = new Torreta();
            addObject(tor,289,177);
            creador++;
        }
        if(tiempo==27 && creador==11)
        {
            Porteria port = new Porteria();
            addObject(port,444,185);
            creador++;
        }
        if(tiempo==29 && creador==12)
        {
            Porteria port1 = new Porteria();
            addObject(port1,195,185);
            creador++;
        }
        if(tiempo==30 && creador==13)
        {
            Caza caza1 = new Caza();
            addObject(caza1,250,109);
            creador++;
        }
        if(tiempo==33 && creador==14)
        {
            StageClear etapa = new StageClear();
            etapa.setImage("stage3.png");
            addObject(etapa,304,69);
            creador++;
        }
        if(tiempo==36 && creador==15)
        {
            super.detieneCancion();
            nave.agregaRecords();
            Greenfoot.delay(100);
            Greenfoot.setWorld(new Inicio());
        }
    }

    /**
     * Prepare the world for the start of the program. That is: create the initial
     * objects and add them to the world.
     */
    private void prepare()
    {
        addObject(nave, 303, 224);
        
        Punto punto1 = new Punto();
        addObject(punto1,127,186);
        Punto punto2 = new Punto();
        addObject(punto2,236,186);
        Punto punto3 = new Punto();
        addObject(punto3,353,186);
        Punto punto4 = new Punto();
        addObject(punto4,470,186);
        
        Punto punto5 = new Punto();
        addObject(punto5,83,229);
        Punto punto6 = new Punto();
        addObject(punto6,214,229);
        Punto punto7 = new Punto();
        addObject(punto7,375,229);
        Punto punto8 = new Punto();
        addObject(punto8,513,229);
        
        Punto punto9 = new Punto();
        addObject(punto9,25,289);
        Punto punto10 = new Punto();
        addObject(punto10,185,289);
        Punto punto11 = new Punto();
        addObject(punto11,404,289);
        Punto punto12 = new Punto();
        addObject(punto12,571,289);
        
         Punto punto13 = new Punto();
        addObject(punto13,-41,356);
        Punto punto14 = new Punto();
        addObject(punto14,152,356);
        Punto punto15 = new Punto();
        addObject(punto15,437,356);
        Punto punto16 = new Punto();
        addObject(punto16,637,356);
    }
}
